Numerically Stable Computation of Heading Without a Reference Axis

ABSTRACT

Systems and methods are described for computing device motion direction and orientation. A system as described herein includes an orientation sensor configured to collect data relating to orientation of the mobile device; an orientation analysis module communicatively coupled to the orientation sensor and configured to determine a three-dimensional orientation of the mobile device relative to an Earth-based coordinate system based on the data collected by the orientation sensor; and a motion direction tracker module communicatively coupled to the orientation analysis module, configured to compute a first direction, that is a three-dimensional direction of motion of the mobile device relative to a coordinate system of the mobile device, and configured to compute a second direction, that is a direction of motion of the mobile device relative to the Earth-based coordinate system, based on the first direction using the three-dimensional orientation of the mobile device relative to the Earth-based coordinate system.

BACKGROUND

Wireless communication devices are incredibly widespread in today'ssociety. For example, people use cellular phones, smart phones, personaldigital assistants, laptop computers, pagers, tablet computers, etc. tosend and receive data wirelessly from countless locations. Moreover,advancements in wireless communication technology have greatly increasedthe versatility of today's wireless communication devices, enablingusers to perform a wide range of tasks from a single, portable devicethat conventionally required either multiple devices or larger,non-portable equipment.

Various mobile device applications, such as navigation aids, businessdirectories, local news and weather services, or the like, leverageknowledge of the position of the device. In various cases, the positionof a mobile device is identified via motion tracking with respect to thedevice. In one currently employed technique, device motion isrepresented as a vector in order to enable motion tracking bycontinuously monitoring the heading of the vector. The orientation of amotion vector relative to its corresponding device is assumed constantand obtained via calibration and/or other initial measurements.Subsequently, changes to the orientation of the device with respect tothe earth are tracked, in turn enabling continuous tracking of theheading of the motion vector.

In techniques such as that described above, a reference axis isinherently involved in the heading computation. More particularly, theheading is composed of two components: the direction of a reference axisof a coordinate frame of the device with respect to the earth, and therelative angle between the projection of the reference axis onto thehorizontal plane with respect to the earth and the direction of motion.However, as the reference axis approaches vertical, inaccuracies occurand, in the case of a fully vertical reference axis, a numericalsingularity and computational failure occur. One currently employedtechnique replaces the reference axis with another axis when theoriginal reference axis approaches vertical, thereby mitigating theeffects of a numerical singularity at the cost of higher computationalcomplexity.

SUMMARY

A system for computing motion direction of a mobile device as describedherein includes an orientation sensor configured to collect datarelating to orientation of the mobile device, an orientation analysismodule communicatively coupled to the orientation sensor and configuredto determine a three-dimensional orientation of the mobile devicerelative to an Earth-based coordinate system based on the data collectedby the orientation sensor, and a motion direction tracker modulecommunicatively coupled to the orientation analysis module andconfigured to compute a first direction, that is a three-dimensionaldirection of motion of the mobile device relative to a coordinate systemof the mobile device, and to compute a second direction, that is adirection of motion of the mobile device relative to the Earth-basedcoordinate system, based on the first direction using thethree-dimensional orientation of the mobile device relative to theEarth-based coordinate system.

Implementations of the system can include one or more of the followingfeatures. The orientation sensor includes at least one of anaccelerometer, a gyroscope or a magnetometer. The orientation sensor isfurther configured to collect data relating to motion direction of themobile device and the motion direction tracker module is furtherconfigured to determine the first direction based on the data collectedby the orientation sensor relating to the motion direction of the mobiledevice. The motion direction tracker module is further configured torelate the coordinate system of the mobile device to the Earth-basedcoordinate system and to translate the motion direction of the device ofthe mobile device from the coordinate system of the mobile device to theEarth-based coordinate system. The motion direction tracker module isfurther configured to relate the coordinate system of the mobile deviceto the Earth-based coordinate system using a rotation matrix or aquaternion. The first direction is an angle relative to north inrelation to a horizontal plane of the Earth-based coordinate system. Thefirst direction is one of an angle relative to magnetic north or anangle relative to true north. The motion direction tracker module isfurther configured to compute the second direction by projecting, to ahorizontal plane at Earth's surface, a three-dimensional direction ofmotion of the mobile device relative to the Earth-based coordinatesystem determined using a three-dimensional direction of motion of themobile device relative to a coordinate system of the mobile device andthe three-dimensional orientation of the mobile device relative to theEarth-based coordinate system.

A system for tracking motion direction of a mobile device as describedherein includes an orientation sensor configured to collect datarelating to orientation of the mobile device, a satellite positioningsystem (SPS) receiver configured to determine an initial direction ofmotion of the mobile device in terms of an Earth-based coordinate systemduring a calibration time period, an orientation analysis modulecommunicatively coupled to the orientation sensor and configured totrack changes to a three-dimensional orientation of the mobile device interms of the Earth-based coordinate system over time based on the datacollected by the orientation sensor, and a motion direction trackermodule communicatively coupled to the SPS receiver and the orientationanalysis module and configured to compute the direction of motion of themobile device in terms of the Earth-based coordinate system relative tothe initial direction of motion of the mobile device using the changesto the three-dimensional orientation of the mobile device in terms ofthe Earth-based coordinate system.

Implementations of the system can include one or more of the followingfeatures. The orientation sensor includes at least one of anaccelerometer, a gyroscope or a magnetometer. The motion directiontracker module is further configured to compute the direction of motionof the mobile device as an angle relative to north in relation to ahorizontal plane of the Earth-based coordinate system. The motiondirection tracker module is further configured to compute the directionof motion of the mobile device by projecting, to a horizontal plane atEarth's surface, a three-dimensional direction of motion of the mobiledevice relative to the Earth-based coordinate system determined using athree-dimensional direction of motion of the mobile device in terms of acoordinate system of the mobile device, the changes to thethree-dimensional orientation of the mobile device in terms of theEarth-based coordinate system over time, and the initial direction ofmotion of the mobile device in terms of the Earth-based coordinatesystem.

A method of computing motion direction of a mobile device as describedherein includes determining a three-dimensional orientation of themobile device relative to a coordinate system of Earth, computing afirst direction, that is a three-dimensional direction of motion of themobile device relative to a coordinate system of the mobile device, andcomputing a second direction, that is a direction of motion of themobile device relative to Earth, using the first direction and thethree-dimensional orientation of the mobile device relative to thecoordinate system of Earth.

Implementations of the method can include one or more of the followingfeatures. Analyzing information from at least one of an accelerometer, agyroscope or a magnetometer. The second direction is an angle relativeto north. Determining a three-dimensional direction of motion of themobile device relative to the coordinate system of Earth using the firstdirection and the three-dimensional orientation of the mobile devicerelative to the coordinate system of Earth, and projecting, to ahorizontal plane at Earth's surface, the three-dimensional direction ofmotion of the mobile device relative to the coordinate system of Earth.

A method of tracking a motion direction of a mobile device over time asdescribed herein includes obtaining an initial motion direction of themobile device in a coordinate system of Earth from a satellitenavigation system during an initial time period, determining athree-dimensional orientation of the mobile device in the coordinatesystem of Earth subsequent to the initial time period, and computing anupdated motion direction of the mobile device in the coordinate systemof Earth relative to the initial motion direction of the mobile deviceusing the three-dimensional orientation of the mobile device in thecoordinate system of Earth.

Implementations of the method can include one or more of the followingfeatures. Determining an initial three-dimensional orientation of themobile device in the coordinate system of Earth during the initial timeperiod, and computing a three-dimensional motion direction of the mobiledevice in a coordinate system of the mobile device using the initialmotion direction of the mobile device in the coordinate system of Earthand the initial three-dimensional orientation of the mobile device inthe coordinate system of Earth. Determining an updated three-dimensionalmotion direction of the mobile device in the coordinate system of Earthusing the three-dimensional motion direction of the mobile device in thecoordinate system of the mobile device and the three-dimensionalorientation of the mobile device in the coordinate system of Earthsubsequent to the initial time period, and projecting, to a horizontalplane at Earth's surface, the updated three-dimensional motion directionof the mobile device in the coordinate system of Earth.

A mobile wireless communication device as described herein includessensing means for generating orientation information for the device;orientation means, communicatively coupled to the sensing means, forcomputing a three-dimensional earth-frame orientation of the devicerelative to Earth based on the orientation information for the device;and direction means, communicatively coupled to the orientation means,for computing a three-dimensional sensor-frame direction of motion ofthe device relative to a sensor coordinate plane of the device definedby at least one sensor axis and computing an earth-frame direction ofmotion of the device relative to Earth using the three-dimensionalsensor-frame direction of motion of the device and the three-dimensionalearth-frame orientation of the device.

Implementations of the device can include one or more of the followingfeatures. The direction means is further configured to translate thethree-dimensional sensor-frame direction of motion of the device to athree-dimensional earth-frame direction of motion using a rotationmatrix or a quaternion. The earth-frame direction of motion of thedevice is an angle relative to north and the direction means isconfigured to compute the earth-frame direction of motion of the deviceby projecting, to a horizontal plane relative to Earth, athree-dimensional earth-plane direction of motion of the devicedetermined using a three-dimensional sensor-plane direction of motion ofthe device and the three-dimensional earth-plane orientation of thedevice.

A mobile wireless communication device as described herein includessensing means for generating orientation information for the device;calibration means for determining an initial earth-frame direction ofmotion of the device relative to Earth; orientation means,communicatively coupled to the sensing means, for tracking changes to athree-dimensional earth-frame orientation of the device relative toEarth over time based on the orientation information for the device; anddirection means, communicatively coupled to the calibration means andthe orientation means, for computing changes to an earth-frame directionof motion of the device relative to Earth over time relative to theinitial earth-frame direction of motion of the device using the changesto the three-dimensional earth-frame orientation of the device.

Implementations of the device can include one or more of the followingfeatures. The direction means is configured to compute the earth-framedirection of motion of the device as an angle relative to north. Thedirection means is further configured to compute the earth-framedirection of motion of the device by projecting, to a horizontal planerelative to Earth, a three-dimensional earth-frame direction of motionof the device computed using a sensor-frame direction of motion of thedevice relative to a sensor coordinate plane of the device defined by atleast one sensor axis, the changes to the three-dimensional earth-frameorientation of the device, and the initial earth-frame direction ofmotion of the device.

A computer program product as described herein resides on anon-transitory processor-readable medium and includes processor-readableinstructions configured to cause a processor to determine athree-dimensional orientation of a mobile device relative to acoordinate system of Earth, compute a first direction, that is athree-dimensional direction of motion of the mobile device relative to acoordinate system of the mobile device, and compute a second direction,that is a direction of motion of the mobile device relative to Earth,using the first direction and the three-dimensional orientation of themobile device relative to the coordinate system of Earth.

Implementations of the computer program product can include one or moreof the following features. The first direction is an angle relative tonorth. The instructions configured to cause a processor to compute thesecond direction are further configured to cause the processor todetermine a three-dimensional direction of motion of the mobile devicerelative to the coordinate system of Earth using the first direction andthe three-dimensional orientation of the mobile device relative to thecoordinate system of Earth, and project, to a horizontal plane atEarth's surface, the three-dimensional direction of motion of the mobiledevice relative to the coordinate system of Earth.

A computer program product as described herein resides on anon-transitory processor-readable medium and includes processor-readableinstructions configured to cause a processor to obtain an initial motiondirection of a mobile device in a coordinate system of Earth from asatellite navigation system during an initial time period, determine athree-dimensional orientation of the mobile device in the coordinatesystem of Earth subsequent to the initial time period, and compute anupdated motion direction of the mobile device in the coordinate systemof Earth relative to the initial motion direction of the mobile deviceusing the three-dimensional orientation of the mobile device in thecoordinate system of Earth.

Implementations of the computer program product can include one or moreof the following features. The non-transitory processor-readable mediumfurther includes processor-readable instructions configured to cause aprocessor to determine an initial three-dimensional orientation of themobile device in the coordinate system of Earth during the initial timeperiod, and compute a three-dimensional motion direction of the mobiledevice in a coordinate system of the mobile device using the initialmotion direction of the mobile device in the coordinate system of Earthand the initial three-dimensional orientation of the mobile device inthe coordinate system of Earth. The instructions configured to cause aprocessor to compute an updated motion direction of the mobile deviceare further configured to cause the processor to determine an updatedthree-dimensional motion direction of the mobile device in thecoordinate system of Earth using the three-dimensional motion directionof the mobile device in the coordinate system of the mobile device andthe three-dimensional orientation of the mobile device in the coordinatesystem of Earth subsequent to the initial time period, and project, to ahorizontal plane at Earth's surface, the updated three-dimensionalmotion direction of the mobile device in the coordinate system of Earth.

Items and/or techniques described herein may provide one or more of thefollowing capabilities, as well as other capabilities not mentioned.Computational complexity of motion tracking with respect to a mobiledevice can be reduced. Heading and position measurements can be made bya mobile device with increased accuracy. As no reference axis is used,motion tracking can be performed without singularities and/or accuracydegradation associated with a reference axis. Enhanced consistencyassociated with motion direction monitoring for a mobile device can beachieved irrespective of the orientation of the mobile device. While atleast one item/technique-effect pair has been described, it may bepossible for a noted effect to be achieved by means other than thatnoted, and a noted item/technique may not necessarily yield the notedeffect.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram of a wireless telecommunication system.

FIG. 2 is a block diagram of components of a mobile station shown inFIG. 1.

FIG. 3 is a partial functional block diagram of the mobile station shownin FIG. 2.

FIG. 4 is a partial functional block diagram of a system for trackingchanges to motion direction of a mobile device with respect to the earthindependently of a reference axis.

FIG. 5 is a graphical illustration of a technique for relating devicemotion to a coordinate system of Earth without use of a reference axis.

FIG. 6 is a block flow diagram of a process of determining a directionof motion of a mobile device relative to Earth without using a referenceaxis.

FIG. 7 is a block flow diagram of a process of reference-independentmotion direction tracking of a mobile device in an Earth-basedcoordinate system.

FIG. 8 is a block flow diagram of a process of indirect tracking ofmotion of a mobile device with respect to earth without use of areference axis.

DETAILED DESCRIPTION

Techniques are described herein for numerically stable computation ofthe heading of a vector, such as that corresponding to the motiondirection of a mobile device, using a sensor ensemble to trackorientation changes with respect to Earth without the use of a referenceaxis. For example, a mobile device, such as a mobile telephone handset,a laptop or tablet computer, a PDA, etc., can collect data from a sensorensemble composed of one or more motion and/or orientation sensors. Thedata obtained from the sensor ensemble are leveraged to maintain avector that is expressed in a coordinate frame of the sensor ensemble.This sensor coordinate frame can then be determined with respect toEarth using a rotation matrix, a quaternion, etc. Subsequently, thevector maintained via the sensor data is expressed in the Earth-basedcoordinate frame, based on which the heading of the vector is computed.The computed heading of the vector can be used in tracking motion and/orlocation of the mobile device for a variety of applications.Alternatively, an indirect technique for heading computation can beutilized, wherein an initial motion direction of the mobile device isobtained, e.g., through use of global positioning system (GPS) or othersatellite positioning system (SPS) information (e.g., GLONASSinformation), and changes to the initial motion direction are tracked inrelation to changes of orientation of the mobile device. Thesetechniques are examples only and are not limiting of the disclosure orthe claims.

Referring to FIG. 1, a wireless communication system 10 includes mobileaccess terminals 12 (ATs), base transceiver stations (BTSs) 14 disposedin cells 16, and a base station controller (BSC) 18. The system 10 maysupport operation on multiple carriers (waveform signals of differentfrequencies). Multi-carrier transmitters can transmit modulated signalssimultaneously on the multiple carriers. Each modulated signal may be aCode Division Multiple Access (CDMA) signal, a Time Division MultipleAccess (TDMA) signal, an Orthogonal Frequency Division Multiple Access(OFDMA) signal, a Single-Carrier Frequency Division Multiple Access(SC-FDMA) signal, etc. Each modulated signal may be sent on a differentcarrier and may carry pilot, overhead information, data, etc.

The BTSs 14 can wirelessly communicate with the mobile devices 12 viaantennas. Each of the BTSs 14 may also be referred to as a base station,an access point, an access node (AN), a Node B, an evolved Node B (eNB),etc. The BTSs 14 are configured to communicate with the mobile devices12 under the control of the BSC 18 via multiple carriers. Each of theBTSs 14 can provide communication coverage for a respective geographicarea, here the respective cells 16. Each of the cells 16 of the BTSs 14is partitioned into multiple sectors as a function of the base stationantennas.

The system 10 may include only macro base stations 14 or it can havebase stations 14 of different types, e.g., macro, pico, and/or femtobase stations, etc. A macro base station may cover a relatively largegeographic area (e.g., several kilometers in radius) and may allowunrestricted access by terminals with service subscription. A pico basestation may cover a relatively small geographic area (e.g., a pico cell)and may allow unrestricted access by terminals with servicesubscription. A femto or home base station may cover a relatively smallgeographic area (e.g., a femto cell) and may allow restricted access byterminals having association with the femto cell (e.g., terminals forusers in a home).

The mobile devices 12 can be dispersed throughout the cells 16. Themobile devices 12 may be referred to as terminals, mobile stations,mobile devices, user equipment (UE), subscriber units, etc. The mobiledevices 12 shown in FIG. 1 include cellular phones and a wirelessrouter, but can also include personal digital assistants (PDAs), otherhandheld devices, netbooks, notebook computers, etc.

Referring also to FIG. 2, an example one of the mobile devices 12comprises a computer system including a processor 20, memory 22including software 24, input/output (I/O) devices 26 (e.g., a display,speaker, keypad, touch screen or touchpad, etc.), antennas 28, a SPSreceiver 30, and orientation sensors 32. The antennas 28 include atransceiver configured to communicate bi-directionally with the BTSs 14via the antennas 28. Here, the processor 20 is an intelligent hardwaredevice, e.g., a central processing unit (CPU) such as those made byIntel® Corporation or AMD®, a microcontroller, an application specificintegrated circuit (ASIC), etc. The memory 22 includes non-transitorystorage media such as random access memory (RAM) and read-only memory(ROM). The memory 22 stores the software 24 which is computer-readable,computer-executable software code containing instructions that areconfigured to, when executed, cause the processor 20 to perform variousfunctions described herein. Alternatively, the software 24 may not bedirectly executable by the processor 20 but is configured to cause thecomputer, e.g., when compiled and executed, to perform the functions.

The SPS receiver 30 includes appropriate equipment for monitoringnavigation signals from satellites and determining position of themobile device 12. For example, the SPS receiver 30 includes one or moreSPS antennas, and can either communicate with the processor 20 todetermine location information or can use its own processor forprocessing the received satellite navigation signals to determine thelocation of the mobile device 12. Further, the SPS receiver 30 cancommunicate with other entities such as a position determination entityand/or the BTS 14 in order to send and/or receive assistance informationfor use in determining the location of the mobile device 12.

The orientation sensors 32 are configured to collect data relating tomotion and/or orientation of the mobile device 12 as well as changes inthe motion and/or orientation of the mobile device 12 over time.Referring also to FIG. 3, the orientation sensors 32 include athree-axis or three-dimensional gyroscope (gyro) 40, accelerometer(s) 42and a three-axis magnetometer 44. The orientation sensors 32 areconfigured to provide information from which the motion direction and/ororientation of the mobile device 12 can be determined. The orientationsensors 32 provide data to one or more orientation analysis modules 46to facilitate determination of the orientation of the mobile device 12as well as to a motion direction tracker module 48 to facilitatedetermination and monitoring of a direction of motion of the mobiledevice 12, e.g., with respect to the earth.

The orientation sensors 32 can provide information over time, e.g.,periodically, such that present and past orientations and/or motiondirections can be compared to determine changes in the motion directionand/or orientation of the mobile device 12. The gyroscope 40 can provideinformation as to motion of the mobile device 12 affecting theorientation. The accelerometer 42 is configured to provide informationas to gravitational acceleration such that the direction of gravityrelative to the mobile device 12 can be determined. The three-axismagnetometer 44 is configured to provide an indication of the direction,in three dimensions, of magnetic north relative to the mobile device 12,e.g., to a coordinate system of the mobile device 12.

Within the mobile device 12, the orientation sensors 32 comprise asensor ensemble that collects information relating to the orientation ofthe mobile device 12. The sensor ensemble is associated with a set ofthree axes, which respectively correspond to the three spatialdimensions of the mobile device 12. These axes, in turn, define acoordinate plane for the sensor ensemble and its associated mobiledevice 12. By way of example, a coordinate plane for the mobile device12 may be defined by three orthogonal axes that respectively run alongthe length, width and depth of the mobile device 12.

Information obtained by the orientation sensors 32 is provided toorientation analysis module(s) 46 and/or a motion direction trackermodule 48 for subsequent processing, as further shown by FIG. 3. Theorientation analysis module(s) 46 and the motion direction trackermodule 48 are implemented by the processor 20 in conjunction with thesoftware 24 stored in the memory 22. These modules, as implemented bythe processor 20 (e.g., by executing software algorithms), areconfigured to process the information from the orientation sensors 32 inorder to determine the direction of motion of the mobile device 12 withrespect to the earth, e.g., expressed in relation to north.

The motion direction tracker module 48 can express the direction ofmotion of the mobile device 12 as an angle relative to north, e.g., withrespect to a horizontal plane in an Earth-based coordinate system. Asused herein, the term “north” refers to any known definition of north,including true north, magnetic north, etc. In the event that directionof motion of the mobile device 12 is determined with respect to truenorth, the motion direction tracker module 48 can receive data from theorientation sensor(s) 32, such as a magnetometer 44, relating to motiondirection with respect to magnetic north and implement one or morealgorithms (e.g., based on magnetic declination and/or othercompensating factors) to relate the data to true north.

Movement of the mobile device 12 can in various cases be interpreted asa vector, where the heading of the vector corresponds to the directionof the movement. In some cases, the relative orientation of the vectoris assumed constant at a given interval in time with respect to thesensor ensemble of the mobile device 12. The orientation of the vectoris calibrated or determined according to various techniques (e.g.,utilizing an SPS receiver 30, orientation sensors 32, etc.). Changes tothe relative orientation of the sensor ensemble with respect to theearth are tracked, in turn providing tracking of the heading of thevector.

In techniques currently employed for tracking motion of asensor-equipped device, motion direction is computed and expressed interms of a reference axis. More particularly, an existing axis in thesensor coordinate frame of the device is selected as a reference axis.The reference axis is then projected onto the horizontal plane in thecoordinate plane of Earth, and a scalar angular measurement between theprojection of the reference axis and north (which is included in thehorizontal plane by definition) is obtained. This scalar measurement iscombined with a second scalar angular measurement representing the anglebetween the projected reference axis and the actual direction of motionof the device with respect to the horizontal plane, referred to as analignment angle or misalignment angle, to obtain the motion direction ofthe device with respect to north. However, in the event that thereference axis of the device does not align with the horizontal planewith respect to the earth, projection of the reference axis onto thehorizontal plane introduces inaccuracy into the motion directioncomputation. Further, as the reference axis approaches vertical, themotion direction computation with respect to the projected referenceaxis becomes unstable. Moreover, the projection of the reference axisonto the horizontal plane is undefined when the reference axis isvertically positioned, which results in a numerical singularity andfailure of the motion direction computation. Another currently employedtechnique for determining motion direction of a device replaces thereference axis with another sensor axis when the original reference axisapproaches vertical. However, this adds complexity to the approach anddoes not mitigate the inaccuracies associated with non-horizontalreference axes as described above.

In contrast to the currently employed approaches described above, theorientation analysis module(s) 46 and motion direction tracker module 48can compute motion direction of a device relative to north by using amotion direction vector relative to the coordinate system of the deviceand a coordinate transformation of the device coordinate system to anEarth-based coordinate system. In doing so, the motion direction of themobile device 12 relative to north can be computed without the use of areference axis or scalar projections onto the Earth-based coordinatesystem. Further, as the techniques described herein as performed by theorientation analysis module(s) 46 and the motion direction trackermodule 48 do not utilize a reference angle, they do not break up thefinal direction computation into two angles (e.g., the anglerepresenting the projection of the reference axis with respect to northminus the alignment angle).

The mobile device 12 shown in FIG. 2 includes the gyroscope 40, theaccelerometer 42, the magnetometer (or compass) 44, and the SPS receiver30. Other examples of mobile devices, however, may not include all ofthese components 40, 42, 44, 30. For example, a mobile device mayinclude the three-dimensional gyroscope 40 only. Alternatively, a mobiledevice may include the accelerometer 42 and the three-axis magnetometer44 only. Alternatively still, a mobile device having either thegyroscope 40 or the accelerometer 42 and the compass or magnetometer 44may include the SPS receiver 30. As yet another alternative, a mobiledevice may include orientation sensors 32 other than the gyroscope 40,the accelerometer 42, and/or the magnetometer 44 shown by FIG. 3 inaddition to, or in place of, the SPS receiver 30.

Referring again to FIG. 3, the orientation sensors 32 provide data tothe orientation analysis module(s) 46 and/or the motion directiontracker module 48 in order to enable the direction of motion of mobiledevice 12 with respect to the earth (e.g., in relation to north) to bedetermined. Motion direction computation techniques based on data fromthe orientation sensors 32 can be used in a scenario in which the mobiledevice 12 does not have satellite navigation capability or the SPSreceiver 30 fails or is otherwise unavailable, the signal received bythe SPS receiver is noisy or unreliable, etc. Alternatively, thesetechniques can be utilized in combination with or in place of afunctional SPS receiver 30 at the mobile device 12 in order to reducepower consumption associated with the SPS receiver 30. For example, theSPS receiver 30 can be switched off when the motion direction of themobile device 12 is determined via data from the orientation sensors 32.

The orientation analysis module(s) 46 and motion direction trackermodule 48 can operate with the aid of data from the orientation sensors32 to compute motion direction of the mobile device 12 relative to northby using a motion direction vector relative to the device coordinatesystem and a coordinate transformation of the device coordinate systemto an Earth-based coordinate system. Here, device motion relative tonorth is determined from the following: Motion direction relative toEarth (C)=device orientation relative to Earth (A) plus motion directionrelative to device orientation (B). In this expression, (A) represents athree-dimensional rotation (e.g., realized by a rotation matrix orquaternion). Furthermore, (B) and (C) represent three-dimensionalvectors.

Motion direction relative to device orientation can be computed directlyor indirectly. In the case of direct computation of the motiondirection, orientation analysis module(s) 46 and motion directiontracker module 48 cooperate to determine the motion direction of themobile device 12 based on data obtained from the orientation sensors 32without the aid of the SPS receiver 30. Direct motion directioncomputation converts the orientation of the mobile device 12 into motiondirection as described below. Derived motion direction data can beexpressed as course over ground, etc., and can be utilized to support orreplace dead reckoning techniques and/or other position locationtechniques.

Direct computation of the direction of a mobile device 12 begins byidentifying data from the orientation sensors 32 relating to a vectorrepresenting the motion of the mobile device 12, which is expressed inthe sensor coordinate frame of the mobile device 12. This vector can beobtained in a variety of ways. For example, if the vector representsdirection of motion of a vehicle, pedestrian, etc., it can be providedthrough eigenvector analysis. The sensor coordinate frame of the mobiledevice 12 is then determined with respect to the earth, as a rotationmatrix or a quaternion. The orientation analysis module(s) 46 can makethis determination, for example, based on data received from theorientation sensors 32. Upon translation of the sensor coordinate frameof the mobile device 12 to an Earth-based coordinate frame the originalvector is rotated to the Earth-based coordinate frame, from which thedirection of motion is computed using the horizontal plane determined bythe gravity direction obtained from measurements by the accelerometer(s)42.

In both the direct and indirect techniques described herein, the motiondirection of the mobile device 12 is determined based on atransformation R_(S) ^(E) between an Earth-based coordinate system andthe sensor coordinate system of the mobile device 12 as measured by theorientation sensors 32. For instance, direct computation of motiondirection can be performed based on acceleration measurements made inthe sensor coordinate system, denoted here as a_(S). From a_(S), theorientation analysis module(s) 46 or other suitable mechanisms cantransform the acceleration measurements to an Earth-based coordinatesystem as a_(E)=R_(S) ^(E) a_(S). The motion direction tracker module 48computes the direction d_(E) of motion with respect to the earth fromaccelerations a_(E) according to d_(E)=F{a_(E)}.

Alternatively, the motion direction tracker module 48 can compute thedirection of motion d_(S) in the sensor frame based on the accelerationsa_(S) in the sensor frame according to d_(S)=F{a_(S)}. Computation ofthe direction of motion in the Earth-based coordinate system can then becompleted by the orientation analysis module(s) 46 or other suitablemechanisms as d_(E)=R_(S) ^(E)d_(S).

Motion direction of the mobile device 12 can also be computed using anindirect method, as shown by FIG. 4. In the indirect method, the motiondirection of the mobile device 12 relative to device orientation iscalibrated during an initial calibration period and considered constantafterwards. The orientation of the mobile device 12 relative to Earth iscomputed by orientation analysis module(s) 46 according to data obtainedfrom the orientation sensors 32. An initial value for the motiondirection of the mobile device 12 relative to Earth is obtained from theSPS receiver 30. Then, during a calibration period, the initial motiondirection relative to the mobile device is obtained from the initialvalue for the motion direction of the mobile device 12 relative to Earthand the initial orientation of the mobile device 12 relative to Earth.After calibration, motion direction relative to Earth is obtained by themotion direction tracker module 48 by combining the motion directionrelative to the orientation of the mobile device 12 (which is assumedknown and constant after calibration) and measurements of the deviceorientation relative to Earth as obtained by the orientation sensors 32and processed by the orientation analysis module(s) 46.

With further reference to the indirect method, an initial direction ofmotion d₀ of the mobile device in an Earth-based coordinate system isobtained by the SPS receiver 30. From this, a first rotation R_(D) ^(E)between the Earth-based coordinate system and d₀ and a second rotationR_(D) ^(S)=R^(S) _(E)R_(D) ^(E) between the sensor coordinate system ofthe mobile device 12 and d₀ are computed. After this calibration phase,the motion direction tracker module 48 continuously determines the thirdrotation R_(S0) ^(E) between the sensor coordinate system of the mobiledevice and the Earth-based coordinate system, and utilizes theserotations to compute the direction of motion d_(E) of the mobile device12 relative to Earth as d_(E)=R_(S) ^(E)R^(S) _(D)d₀.

Calibration in the indirect motion direction computation techniquesdescribed above are performed in three dimensions, such that all threespatial axes of the mobile device 12 are utilized in the calibrationprocess. This is in contrast to previously employed approaches to motiondirection computation, where calibration is performed on the horizontalplane only via projection of a reference axis onto the horizontal plane.By calibrating from SPS projections of the velocity vector of the mobiledevice 12 on all three device axes, calibration is performed withrespect to projected components of the velocity vector, reducing theoccurrence of instability and inaccuracies associated with techniques inwhich only one calibration alignment is used.

Referring next to FIG. 5, graphs 200 and 202 illustrate theimplementation of the techniques described herein. In graph 200, thedirection of motion M is determined relative to the x-y-z coordinatesystem of the mobile device 12. The orientation of the device relativeto the coordinate system of Earth is determined, and a coordinatetransformation is computed to orient the x-y-z coordinate system of themobile device with the n-e-d (north-east-down) coordinate system ofEarth, as shown in graph 202. From this, the motion direction isprojected onto the north-east plane, and the angle Θ relative to northis computed.

Referring to FIG. 6, with further reference to FIGS. 1-5, a process 300of determining a direction of motion of a mobile device relative toEarth without using a reference axis includes the stages shown. Theprocess 300 is, however, an example only and not limiting. The process300 can be altered, e.g., by having stages added, removed, rearranged,combined, and/or performed concurrently. Still other alterations to theprocess 300 as shown and described are possible.

At stage 302, a three-dimensional orientation of a mobile device 12relative to a coordinate system of Earth is determined. The orientationof the mobile device 12 can be determined based on measurements obtainedfrom one or more orientation sensors 32, such as a gyroscope 40, anaccelerometer 42, a magnetometer 44, or the like. Further, orientationof the mobile device 12 with respect to earth can be determined by oneor more orientation analysis modules 46 based on data relating toacceleration of the mobile device 12 relative to a coordinate system ofthe mobile device 12 and a coordinate transformation to an Earth-basedcoordinate system.

At stage 304, a first direction, that is a three-dimensional directionof motion of the mobile device 12 relative to a coordinate system of themobile device 12, is computed. These computations are performed by,e.g., the motion direction tracker module 48 based on informationobtained from orientation sensors 32 and/or SPS receiver 30. At stage306, a second direction, that is a direction of motion of the mobiledevice 12 relative to Earth, is computed using the first direction, ascomputed at stage 304, and the three-dimensional orientation of themobile device 12 relative to the coordinate system of Earth, asdetermined at stage 302. As discussed above, computation of the seconddirection at stage 306 is performed using a rotation matrix, aquaternion, or other means without projecting the motion direction ofthe mobile device with respect to a reference axis to a horizontal planein the Earth-based coordinate system.

Referring next to FIG. 7, with further reference to FIGS. 1-5, a process310 of reference-independent motion direction tracking of a mobiledevice in an Earth-based coordinate system includes the stages shown.The process 310 is, however, an example only and not limiting. Theprocess 310 can be altered, e.g., by having stages added, removed,rearranged, combined, and/or performed concurrently. Still otheralterations to the process 310 as shown and described are possible.Using the process 310, the direction of motion of a mobile device 12 isdirectly computed from sensor data collected from orientation sensors 32without the aid of a SPS receiver 30.

At stage 312, a motion direction of the mobile device 12 is identifiedand expressed in a coordinate frame of the mobile device 12. Sensor dataat stage 312 are defined in terms of, e.g., the x, y and z sensor axesof the mobile device 12, and may be provided to orientation analysismodule(s) 46, implemented via processor 20 and software 24 stored on thememory 22, for some or all of the processing of stage 312. At stage 314,the coordinate frame of the mobile device 12 is related to anEarth-based coordinate system. The Earth-based coordinate system can bea n-e-d coordinate system such as that shown in graph 202 and/or anyother suitable coordinate system. At stage 316, the motion direction ofthe device as identified at stage 312 is translated into the Earth-basedcoordinate system. Some or all of the processing of stage 316 isperformed by a motion direction tracker module 48, which is implementedvia a processor 20 executing software 24 stored on a memory 22.

Turning to FIG. 8, with further reference to FIGS. 1-5, a process 320 ofindirect tracking of motion of a mobile device with respect to earthwithout use of a reference axis includes the stages shown. The process320 is, however, an example only and not limiting. The process 320 canbe altered, e.g., by having stages added, removed, rearranged, combined,and/or performed concurrently. Still other alterations to the process320 as shown and described are possible. Using the process 320, thedirection of motion of a mobile device 12 is indirectly computed fromcalibration data obtained from a SPS receiver 30 supplemented by sensordata collected from orientation sensors 32.

At stage 322, an initial direction of motion of the mobile device 12 isobtained, by the SPS receiver 30 and/or any other suitable mechanism(s),in relation to an Earth-based coordinate system. At stage 324, sensordata relating to orientation of the mobile device 12 is obtained inrelation to the Earth-based coordinate system. Sensor data are obtainedat stage 324 from orientation sensors 32, which may operate to providesensor data to orientation analysis module(s) 46 implemented via aprocessor 20 executing software 24 stored on a memory 22 in a similarmanner to stage 312 of process 310.

At stage 326, the initial direction of motion of the mobile device 12 iscomputed in relation to a coordinate system of the mobile device 12. Thecoordinate system of the mobile device 12 is defined by, e.g., the x, yand z sensor axes of the mobile device 12. The computations of stage 326are conducted by, e.g., comparing the initial direction of motion of themobile device 12 obtained at stage 322 with the sensor data obtained atstage 324.

At stage 328, changes in the orientation of the mobile device 12, e.g.,relative to the sensor data obtained at stage 324, are identified. Atstage 330, the direction of motion of the mobile device 12 in theEarth-based coordinate system is updated relative to the initialdirection of motion obtained at stage 322 according to the changes inorientation of the mobile device 12 identified at stage 328. Computationat stage 330 is performed by, e.g., a motion direction tracker module 48implemented via a processor 20 executing software 24 stored on anon-transitory memory 22.

Still other techniques are possible.

1. A system for computing motion direction of a mobile device, thesystem comprising: an orientation sensor configured to collect datarelating to orientation of the mobile device; an orientation analysismodule communicatively coupled to the orientation sensor and configuredto determine a three-dimensional orientation of the mobile devicerelative to an Earth-based coordinate system based on the data collectedby the orientation sensor; and a motion direction tracker modulecommunicatively coupled to the orientation analysis module, configuredto compute a first direction, that is a three-dimensional direction ofmotion of the mobile device relative to a coordinate system of themobile device, and configured to compute a second direction, that is adirection of motion of the mobile device relative to the Earth-basedcoordinate system, based on the first direction using thethree-dimensional orientation of the mobile device relative to theEarth-based coordinate system.
 2. The system of claim 1 wherein theorientation sensor comprises at least one of an accelerometer, agyroscope or a magnetometer.
 3. The system of claim 1 wherein theorientation sensor is further configured to collect data relating tomotion direction of the mobile device and the motion direction trackermodule is further configured to determine the first direction based onthe data collected by the orientation sensor relating to the motiondirection of the mobile device.
 4. The system of claim 1 wherein themotion direction tracker module is further configured to relate thecoordinate system of the mobile device to the Earth-based coordinatesystem and to translate the motion direction of the mobile device of themobile device from the coordinate system of the mobile device to theEarth-based coordinate system.
 5. The system of claim 4 wherein themotion direction tracker module is further configured to relate thecoordinate system of the mobile device to the Earth-based coordinatesystem using a rotation matrix or a quaternion.
 6. The system of claim 1wherein the first direction is an angle relative to north in relation toa horizontal plane of the Earth-based coordinate system.
 7. The systemof claim 6 wherein the first direction is one of an angle relative tomagnetic north or an angle relative to true north.
 8. The system ofclaim 6 wherein the motion direction tracker module is furtherconfigured to compute the second direction by projecting, to ahorizontal plane at Earth's surface, a three-dimensional direction ofmotion of the mobile device relative to the Earth-based coordinatesystem determined using a three-dimensional direction of motion of themobile device relative to the coordinate system of the mobile device andthe three-dimensional orientation of the mobile device relative to theEarth-based coordinate system.
 9. A system for tracking motion directionof a mobile device, the system comprising: an orientation sensorconfigured to collect data relating to orientation of the mobile device;a satellite positioning system (SPS) receiver configured to determine aninitial direction of motion of the mobile device in terms of anEarth-based coordinate system during a calibration time period; anorientation analysis module communicatively coupled to the orientationsensor and configured to track changes to a three-dimensionalorientation of the mobile device in terms of the Earth-based coordinatesystem over time based on the data collected by the orientation sensor;and a motion direction tracker module communicatively coupled to the SPSreceiver and the orientation analysis module and configured to compute adirection of motion of the mobile device in terms of the Earth-basedcoordinate system relative to the initial direction of motion of themobile device using the changes to the three-dimensional orientation ofthe mobile device in terms of the Earth-based coordinate system.
 10. Thesystem of claim 9 wherein the orientation sensor comprises at least oneof an accelerometer, a gyroscope or a magnetometer.
 11. The system ofclaim 9 wherein the motion direction tracker module is furtherconfigured to compute the direction of motion of the mobile device as anangle relative to north in relation to a horizontal plane of theEarth-based coordinate system.
 12. The system of claim 11 wherein themotion direction tracker module is further configured to compute thedirection of motion of the mobile device by projecting, to a horizontalplane at Earth's surface, a three-dimensional direction of motion of themobile device relative to the Earth-based coordinate system determinedusing a three-dimensional direction of motion of the mobile device interms of a coordinate system of the mobile device, the changes to thethree-dimensional orientation of the mobile device in terms of theEarth-based coordinate system over time, and the initial direction ofmotion of the mobile device in terms of the Earth-based coordinatesystem.
 13. A method of computing motion direction of a mobile devicecomprising: determining a three-dimensional orientation of the mobiledevice relative to a coordinate system of Earth; computing a firstdirection, that is a three-dimensional direction of motion of the mobiledevice relative to a coordinate system of the mobile device; andcomputing a second direction, that is a direction of motion of themobile device relative to Earth, using the first direction and thethree-dimensional orientation of the mobile device relative to thecoordinate system of Earth.
 14. The method of claim 13 wherein thedetermining the first direction comprises analyzing information from atleast one of an accelerometer, a gyroscope or a magnetometer.
 15. Themethod of claim 13 wherein the second direction is an angle relative tonorth.
 16. The method of claim 15 wherein the computing the seconddirection comprises: determining a three-dimensional direction of motionof the mobile device relative to the coordinate system of Earth usingthe first direction and the three-dimensional orientation of the mobiledevice relative to the coordinate system of Earth; and projecting, to ahorizontal plane at Earth's surface, the three-dimensional direction ofmotion of the mobile device relative to the coordinate system of Earth.17. A method of tracking a motion direction of a mobile device over timecomprising: obtaining an initial motion direction of the mobile devicein a coordinate system of Earth from a satellite navigation systemduring an initial time period; determining a three-dimensionalorientation of the mobile device in the coordinate system of Earthsubsequent to the initial time period; and computing an updated motiondirection of the mobile device in the coordinate system of Earthrelative to the initial motion direction of the mobile device using thethree-dimensional orientation of the mobile device in the coordinatesystem of Earth.
 18. The method of claim 17 further comprising:determining an initial three-dimensional orientation of the mobiledevice in the coordinate system of Earth during the initial time period;and computing a three-dimensional motion direction of the mobile devicein a coordinate system of the mobile device using the initial motiondirection of the mobile device in the coordinate system of Earth and theinitial three-dimensional orientation of the mobile device in thecoordinate system of Earth.
 19. The method of claim 17 wherein thecomputing the updated motion direction of the mobile device comprises:determining an updated three-dimensional motion direction of the mobiledevice in the coordinate system of Earth using the three-dimensionalmotion direction of the mobile device in the coordinate system of themobile device and the three-dimensional orientation of the mobile devicein the coordinate system of Earth subsequent to the initial time period;and projecting, to a horizontal plane at Earth's surface, the updatedthree-dimensional motion direction of the mobile device in thecoordinate system of Earth.
 20. A mobile wireless communication devicecomprising: sensing means for generating orientation information for thedevice; orientation means, communicatively coupled to the sensing means,for computing a three-dimensional earth-frame orientation of the devicerelative to Earth based on the orientation information for the device;and direction means, communicatively coupled to the orientation means,for computing a three-dimensional sensor-frame direction of motion ofthe device relative to a sensor coordinate plane of the device definedby at least one sensor axis and computing an earth-frame direction ofmotion of the device relative to Earth using the three-dimensionalsensor-frame direction of motion of the device and the three-dimensionalearth-frame orientation of the device.
 21. The device of claim 20wherein the direction means is further configured to translate thethree-dimensional sensor-frame direction of motion of the device to athree-dimensional earth-frame direction of motion using a rotationmatrix or a quaternion.
 22. The device of claim 20 wherein theearth-frame direction of motion of the device is an angle relative tonorth and the direction means is configured to compute the earth-framedirection of motion of the device by projecting, to a horizontal planerelative to Earth, a three-dimensional earth-plane direction of motionof the device determined using a three-dimensional sensor-planedirection of motion of the device and the three-dimensional earth-planeorientation of the device.
 23. A mobile wireless communication devicecomprising: sensing means for generating orientation information for thedevice; calibration means for determining an initial earth-framedirection of motion of the device relative to Earth; orientation means,communicatively coupled to the sensing means, for tracking changes to athree-dimensional earth-frame orientation of the device relative toEarth over time based on the orientation information for the device; anddirection means, communicatively coupled to the calibration means andthe orientation means, for computing changes to an earth-frame directionof motion of the device relative to Earth over time relative to theinitial earth-frame direction of motion of the device using the changesto the three-dimensional earth-frame orientation of the device.
 24. Thedevice of claim 23 wherein the direction means is configured to computethe earth-frame direction of motion of the device as an angle relativeto north.
 25. The device of claim 24 wherein the direction means isfurther configured to compute the earth-frame direction of motion of thedevice by projecting, to a horizontal plane relative to Earth, athree-dimensional earth-frame direction of motion of the device computedusing a sensor-frame direction of motion of the device relative to asensor coordinate plane of the device defined by at least one sensoraxis, the changes to the three-dimensional earth-frame orientation ofthe device, and the initial earth-frame direction of motion of thedevice.
 26. A computer program product residing on a non-transitoryprocessor-readable medium and comprising processor-readable instructionsconfigured to cause a processor to: determine a three-dimensionalorientation of a mobile device relative to a coordinate system of Earth;compute a first direction, that is a three-dimensional direction ofmotion of the mobile device relative to a coordinate system of themobile device; and compute a second direction, that is a direction ofmotion of the mobile device relative to Earth, using the first directionand the three-dimensional orientation of the mobile device relative tothe coordinate system of Earth.
 27. The computer program product ofclaim 26 wherein the first direction is an angle relative to north. 28.The computer program product of claim 27 wherein the instructionsconfigured to cause the processor to compute the second direction arefurther configured to cause the processor to: determine athree-dimensional direction of motion of the mobile device relative tothe coordinate system of Earth using the first direction and thethree-dimensional orientation of the mobile device relative to thecoordinate system of Earth; and project, to a horizontal plane atEarth's surface, the three-dimensional direction of motion of the mobiledevice relative to the coordinate system of Earth.
 29. A computerprogram product residing on a non-transitory processor-readable mediumand comprising processor-readable instructions configured to cause aprocessor to: obtain an initial motion direction of a mobile device in acoordinate system of Earth from a satellite navigation system during aninitial time period; determine a three-dimensional orientation of themobile device in the coordinate system of Earth subsequent to theinitial time period; and compute an updated motion direction of themobile device in the coordinate system of Earth relative to the initialmotion direction of the mobile device using the three-dimensionalorientation of the mobile device in the coordinate system of Earth. 30.The computer program product of claim 29 wherein the non-transitoryprocessor-readable medium further comprises processor-readableinstructions configured to cause the processor to: determine an initialthree-dimensional orientation of the mobile device in the coordinatesystem of Earth during the initial time period; and compute athree-dimensional motion direction of the mobile device in a coordinatesystem of the mobile device using the initial motion direction of themobile device in the coordinate system of Earth and the initialthree-dimensional orientation of the mobile device in the coordinatesystem of Earth.
 31. The computer program product of claim 29 whereinthe instructions configured to cause the processor to compute theupdated motion direction of the mobile device are further configured tocause the processor to: determine an updated three-dimensional motiondirection of the mobile device in the coordinate system of Earth using athree-dimensional motion direction of the mobile device in a coordinatesystem of the mobile device and the three-dimensional orientation of themobile device in the coordinate system of Earth subsequent to theinitial time period; and project, to a horizontal plane at Earth'ssurface, the updated three-dimensional motion direction of the mobiledevice in the coordinate system of Earth.